#ifndef InputManager_h__
#define InputManager_h__

#include <Windows.h>

namespace PracEng
{
	class InputManager
	{
	public:
		enum EKEY_STATE
		{
			EKEYSTATE_UnPress,
			EKEYSTATE_Pressed,
			EKEYSTATE_Repeat,
		};
		InputManager();
		void UpdateKeyStatesDown(WPARAM wparam, LPARAM lparam);
		void UpdateKeyStatesUp(WPARAM wparam, LPARAM lparam);
		void UpdateMouseDown(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
		void UpdateMouseUp(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
		void OnReleaseCapture();
		void Tick(float DeltaTime);
		void ProcessInput(float DeltaTime);
	private:
		EKEY_STATE KeyStates[256];
		bool bLeftMouseBtnDown;
		POINT m_ptLastMousePos;
		PEFloat2 m_MouseDelta;
	};

}
#endif // InputManager_h__